Skip to main content

Task Report Push

Register a callback endpoint to receive task report notifications in real time. Group‑level delivery is now supported.

  • Compatibility: For subscriptions created or re‑saved on or after 2025‑05‑15, the new top‑level field format described below takes effect.
  • Existing subscriptions keep the legacy two‑level structure (appId + payload) and continue to work without change.
  • New top‑level fields (siblings of appId and payload).

Integration flow​

Step 1: Configure the callback URL​

  1. Sign in to the Developer Center and open Enterprise callback URL. This page covers the task report callback URL block, which is independent of the event callback.
  2. Choose the push account. It must be a developer of this customer and is the only person who can modify this page. It also determines the push scope: task reports are pushed only for robots directly bound to that account. Robots that belong to the customer but are not directly bound to the account are not pushed. The event and task callbacks share one push account.
  3. Click Modify in the block, enter the callback url, turn on the push switch, and click Save.
  4. The platform then issues the AppId and Secret for this subscription. The Secret is shown again only after a reset, so save it immediately.

Developer Center enterprise callback URL page: the task report callback and the event callback are configured independently, each with an AppId, Secret, callback URL and push switch

Step 2: Verify the signature​

Each push carries X-Gausium-App-Id, X-Gausium-Timestamp, X-Gausium-Nonce and X-Gausium-Signature. The algorithm and examples are in Callback Signature.

Step 3: Test the connection​

Click Test in the block and the platform sends one probe to the configured URL. A 2xx response that passes verification means the link is working.

Step 4: Receive and process pushes​

Once the link is up, parse reports with the field table below. Read these first:

Push is a real-time increment only

Push covers newly generated task reports. For historical reports use Page task reports, and for report images use Query task report map images.

Callback registration requirements​

  1. Language: Must follow IETF BCP 47 (e.g. en-US, zh-CN).

  2. Callback:

    • url — for example https://{{host}}/callback, HTTP method POST.
    • appId — for example 24416c36-d9c7-4d74-a047-d6ca461fxxxx (used for authentication,Provided by Gausium after issuance).

Example curl​

curl --location 'https://{{host}}/callback' \
--header 'accept: */*' \
--header 'Content-Type: application/json' \
--data '{
"appId": "24416c36-aaaa-4d74-aaaa-d6ca461faaaa",
"payload": {
"serialNumber": "TEST00-0000-000-XXXX",
"modelTypeCode": "Scrubber S1",
"taskReport": {
"id": "684c183c-4ad9-467b-ac7c-55835255AAAA",
"taskId": "233123123-d9c7-4d74-a047-d6ca461faaaa",
"planId": "233123123-d9c7-4d74-a047-d6ca461faaaa",
"taskInstanceId": "893cbadf-3bb1-45be-b7ef-d590d54fAAAA",
"displayName": "ceshi2",
"startTime": 1714124784000,
"endTime": 1714124890000,
"robot": "S2153",
"robotSerialNumber": "TEST00-0000-000-XXXX",
"operator": "admin",
"completionPercentage": 0.156,
"durationSeconds": 106,
"plannedCleaningAreaSquareMeter": 67.425,
"actualCleaningAreaSquareMeter": 10.548,
"efficiencySquareMeterPerHour": 407.965,
"plannedPolishingAreaSquareMeter": null,
"actualPolishingAreaSquareMeter": null,
"waterConsumptionLiter": 0.0,
"startBatteryPercentage": 38.0,
"endBatteryPercentage": 38.0,
"consumablesResidualPercentage": {
"brush": 100.0,
"filter": 100.0,
"suctionBlade": 100.0
},
"cleaningMode": "Cleaning",
"taskEndStatus": 1,
"subTasks": [
{
"mapId": "370192bd-fe7f-40d0-8d0a-4360415bb8cf",
"mapName": "ceshi2",
"actualCleaningAreaSquareMeter": 10.548,
"taskId": "233123123-d9c7-4d74-a047-d6ca461faaaa"
}
],
"taskReportPngUri": "https://bot.release.gs-robot.com/robot-task/task/report/png/v2/en/684c183c-4ad9-467b-ac7c-55835255aaaa",
"areaNameList": "2_area1,area2,area3,area4;3_area1,area2,area3"
}
}
}'

Top-Level Field Descriptions​

FieldTypeDescription
appIdStringUsed for authentication, unchanged
payloadObjectBusiness data, same structure as in the previous version

Field description​

FieldTypeDescriptionExample
payload.serialNumberStringRobot SNTEST00-0000-000-XXXX
payload.modelTypeCodeStringRobot model codeScrubber 50H
payload.taskReportObjectTask report—
payload.taskReport.idStringTask report ID684c183c-4ad9-467b-ac7c-55835255AAAA
payload.taskReport.taskIdStringStatic task ID233123123-d9c7-4d74-a047-d6ca461faaaa
payload.taskReport.planIdStringSchedule plan ID233123123-d9c7-4d74-a047-d6ca461faaaa
payload.taskReport.taskInstanceIdStringTask instance ID893cbadf-3bb1-45be-b7ef-d590d54fAAAA
payload.taskReport.displayNameStringHuman‑readable task name10F Cleaning
payload.taskReport.startTimeLongTask start timestamp (ms)1714290913000
payload.taskReport.endTimeLongTask end timestamp (ms)1714290952000
payload.taskReport.robotStringRobot display nameS2153
payload.taskReport.robotSerialNumberStringRobot SNGS000-XXXX-XXX-XXXX
payload.taskReport.operatorStringOperatorMike
payload.taskReport.completionPercentageDoubleCompletion percentage (0‑1)0.55
payload.taskReport.durationSecondsIntegerDuration (s)300
payload.taskReport.plannedCleaningAreaSquareMeterDoublePlanned cleaning area (m²)200.5
payload.taskReport.actualCleaningAreaSquareMeterDoubleActual cleaning area (m²)100.2
payload.taskReport.efficiencySquareMeterPerHourDoubleCleaning efficiency (m²/h)300.7
payload.taskReport.plannedPolishingAreaSquareMeterDoublePlanned polishing area (m²)200.5
payload.taskReport.actualPolishingAreaSquareMeterDoubleActual polishing area (m²)200.5
payload.taskReport.waterConsumptionLiterDoubleWater consumption (L)5.0
payload.taskReport.startBatteryPercentageDoubleStart battery (%)70.0
payload.taskReport.endBatteryPercentageDoubleEnd battery (%)40.0
payload.taskReport.consumablesResidualPercentageObjectConsumables remaining (%)—
payload.taskReport.consumablesResidualPercentage.brushDoubleBrush life (%)50.0
payload.taskReport.consumablesResidualPercentage.filterDoubleFilter life (%)50.0
payload.taskReport.consumablesResidualPercentage.suctionBladeDoubleSqueegee life (%)50.0
payload.taskReport.cleaningModeStringCleaning modeSweeping
payload.taskReport.taskEndStatusIntegerEnd status: −1 Unknown, 0 Normal, 1 Manual, 2 Error, 3 Startup failure0
payload.taskReport.subTasksArraySub‑task list—
payload.taskReport.subTasks[0].mapIdStringMap ID370192bd-fe7f-40d0-8d0a-4360415baaaa
payload.taskReport.subTasks[0].mapNameStringMap nameDemo Map
payload.taskReport.subTasks[0].actualCleaningAreaSquareMeterDoubleActual cleaning area (m²)10.0
payload.taskReport.subTasks[0].taskIdStringSub‑task ID233123123-d9c7-4d74-a047-d6ca461faaaa
payload.taskReport.taskReportPngUriStringTask report PNG URIhttps://bot.gs-robot.com/robot-task/task/report/png/v2/en/47e3628b-a2b9-4124-bbbc-45e0d4bfaaaa
payload.taskReport.areaNameListStringList of area names2_area1,area2,area3